hysop.numerics.fft.fftw_fft module

FFT iterface for fast Fourier Transforms using FFTW backend (using pyfftw). FftwFFT FftwFFTPlan

class hysop.numerics.fft.fftw_fft.FftwFFT(threads=None, planner_effort=None, planning_timelimit=None, destroy_input=False, warn_on_misalignment=True, warn_on_allocation=True, error_on_allocation=False, backend=None, allocator=None, **kwds)[source]

Bases: HostFFTI

Interface to compute local to process FFT-like transforms using the FFTW backend.

Fftw fft backend has many advantages:
  • single, double and long double precision supported

  • no intermediate temporary buffers created at each call.

  • planning capability with caching

  • multithreading capability

Planning destroys initial arrays content.

Initializes the interface and default supported real and complex types.

bake_kwds(**kwds)[source]
classmethod check_alignment(a, out)[source]

Check SIMD alignment of input and output arrays.

dct(a, out=None, type=2, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

dst(a, out=None, type=2, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

fft(a, out=None, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

idct(a, out=None, type=2, axis=-1, scaling=None, **kwds)[source]

Planning destroys initial arrays content.

idst(a, out=None, type=2, axis=-1, scaling=None, **kwds)[source]

Planning destroys initial arrays content.

ifft(a, out=None, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

irfft(a, out=None, n=None, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

rfft(a, out=None, axis=-1, **kwds)[source]

Planning destroys initial arrays content.

class hysop.numerics.fft.fftw_fft.FftwFFTPlan(a, out, scaling=None, **plan_kwds)[source]

Bases: HostFFTPlanI

Build and wraps a FFTW plan. Emit warnings when SIMD alignment is not used. Emit warnings when changing input and output alignment.

__call__()[source]

Execute the plan on possibly different input and output arrays. Input array updates with arrays that are not aligned on original byte boundary will result in a copy being made. Return output array for convenience.

classmethod cache_file()[source]
check_new_inputs(a, out)[source]
execute()[source]

Execute plan on current input and output array.

property input_array

Return currently planned input array.

classmethod load_wisdom(h)[source]
property output_array

Return currently planned output array.

classmethod save_wisdom(h, plan)[source]